curl_multi_init
返回一个新cURL批处理句柄
适用 PHP 版本:PHP 4.0.2 及以上版本。
函数说明:
curl_multi_init() 函数用于初始化一个 cURL 多重请求句柄。该函数创建了一个“多重 cURL 句柄”,使得我们可以同时处理多个 cURL 请求。与传统的 cURL 请求相比,curl_multi_* 函数可以同时并行地执行多个 HTTP 请求,从而显著提升性能,特别适合需要同时访问多个不同 API 或进行多个 HTTP 请求的场景。
函数语法:
resource curl_multi_init(void);
参数:
该函数没有参数。
返回值:
如果成功,返回一个 cURL multi handle(资源类型);否则返回 false。
下面是一个使用 curl_multi_init() 创建多重请求并执行的示例代码:
<?php // 初始化多个cURL句柄 $mh = curl_multi_init(); // 创建多个cURL请求 $ch1 = curl_init("http://example.com/api/1"); $ch2 = curl_init("http://example.com/api/2"); // 将cURL请求添加到multi句柄中 curl_multi_add_handle($mh, $ch1); curl_multi_add_handle($mh, $ch2); // 执行请求 $active = null; do { $mrc = curl_multi_exec($mh, $active); } while ($mrc == CURLM_CALL_MULTI_PERFORM || $active); // 获取请求结果 $response1 = curl_multi_getcontent($ch1); $response2 = curl_multi_getcontent($ch2); // 关闭句柄 curl_multi_remove_handle($mh, $ch1); curl_multi_remove_handle($mh, $ch2); curl_multi_close($mh); // 输出响应结果 echo "Response from API 1: " . $response1 . "<br>"; echo "Response from API 2: " . $response2; ?>
示例代码说明:
1. 使用 curl_multi_init() 初始化一个多重 cURL 句柄。
2. 创建两个独立的 cURL 请求,分别指向不同的 API。
3. 使用 curl_multi_add_handle() 将这两个 cURL 请求句柄添加到多重 cURL 句柄中。
4. 通过 curl_multi_exec() 执行并行请求。
5. 通过 curl_multi_getcontent() 获取每个请求的响应内容。
6. 在请求完成后,分别用 curl_multi_remove_handle() 移除每个请求,并用 curl_multi_close() 关闭多重 cURL 句柄。
7. 输出 API 响应内容。